package com.ruoyi.system.mapper;

import com.ruoyi.common.core.domain.entity.SysPost;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.compensationManagement.domain.CompensationSalarySetting;
import com.ruoyi.compensationManagement.domain.PositionSettings;
import com.ruoyi.personnelMatters.domain.UserListVo;
import com.ruoyi.common.core.domain.entity.SysPositionTemp;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface SysCommonMapper {
    //根据部门id获取部门名称
    public String getDeptName(Long deptId);

    //根据用户id获取用户昵称（名字）
    public String getUserName(Long userId);

    //根据用户id获取用户部门id
    public Long getDeptIdByUserId(Long userId);

    //根据用户id查用户对象
    public SysUser getSysUserByUserId(Long userId);

    //根据用户id获取出生日期
    public Date getBirthdDay(Long userId);

    //根据用户id获取用户部门名称
    public String getDeptNameByUserId(Long userId);

    //根据用户id获取人员类别
    public String getPersonnelCategoryByUserId(Long userId);

    //根据用户id获取岗位类别
    public String getUserPositionByUserId(Long userId);

    //根据用户id获取岗位等级薪资信息
    public PositionSettings getPositionSettingsByUserId(Long userId);

    //根据user表中的薪级id获取薪级信息
    public CompensationSalarySetting getCompensationSalarySettingByPayId(Long userId);

    //查询下拉菜单用印批准人(菜单权限查询)
    public List<Map<String, Object>> getSealMsterList();

    //查询下拉菜单人员类型(培训记录统计)
    public List<String> getRoleName();

    //查询下拉菜单岗位类别(培训记录统计)
    public List<String> getPostName();

    //根据菜单权限查询当前员工所在科室的科室负责人（用印审核用）
    public List<Map<String, Object>> getSealDeptMaster();

    //在职人员信息（人事考核用）
    public List<UserListVo> getUserInfoList();

    //获取员工转正时间
    public Date getEmploymentConfirmationTime(Long userId);

    //获取员工合同到期时间
    public Date getContractEndTime(Long userId);

    //查岗位表
    public List<SysPositionTemp> getSysPositionTempList();

    public List<SysPositionTemp> selectPositionType();

    public List<SysPositionTemp> getPositionLevelOption(Long positionIds);


    //根据用户id查用户岗位类型(SysPositionTemp)
    public SysPositionTemp selectPositionByUserId(Long userid);

    //根据用户id查用户岗位级别(SysPositionTemp)
    public SysPositionTemp selectPositionLevelByUserId(Long userid);


    //查岗位等级选项
    public List<SysPositionTemp> getPositionLevelOptions();

    public String getNickNameByJobNumber(String jobNumber);

    //根据用户id查用户职位
    public SysPost selectPostByUserId(Long userId);

    //查下拉职务类型下拉列表
    public List<SysPost> selectPostType();
}
